# -*- coding: utf-8 -*-

# === ユーザープロフィールの管理用クラス
class Profile < ActiveRecord::Base
  include CommonUtils

  belongs_to :user

  # アバター画像のアップローダを定義
  mount_uploader :avatar, AvatarUploader

  # === プロフィールの公開範囲情報を文字列として返す
  def permission_string
    pair = self.class.permission_types.select{|pair| pair[1] == self.permissions}.first
    if pair
      return pair[0]
    else
      return "none"
    end
  end

  # === 引数で指定されたユーザーオブジェクトに対してプロフィール公開可能かどうかを
  # 真偽値で返す
  def check_permission(user)
    return true if self.user == user
    return permisson?(self.permissions, user)
  end

  # === プロフィール情報のパーミッション情報として設定可能な文字列のリストを
  # 配列で返す
  def self.permission_types
    return [[I18n.t("sns.permission_strings.none"), "none"],
            [I18n.t("sns.permission_strings.sns_only"), "members"],
            [I18n.t("sns.permission_strings.world"), "all"],
            [I18n.t("sns.permission_strings.friends"), "friends"]]
  end
end
